<?php


namespace App\Helper;


use EasySwoole\Jwt\Jwt;

class JwtHelper
{
    public static function createToken()
    {
        try{
            $jwtObject = Jwt::getInstance()
                ->setSecretKey('easyswoole') // 秘钥
                ->publish();

            $jwtObject->setAlg('HMACSHA256'); // 加密方式
            $jwtObject->setAud('user'); // 用户
            $jwtObject->setExp(time()+3600); // 过期时间
            $jwtObject->setIat(time()); // 发布时间
            $jwtObject->setIss('easyswoole'); // 发行人
            $jwtObject->setJti(md5(time())); // jwt id 用于标识该jwt
            $jwtObject->setNbf(time()+60*5); // 在此之前不可用
            $jwtObject->setSub('主题'); // 主题

            $jwtObject->setData([
                'other_info'
            ]);

            $token = $jwtObject->__toString();
            return $token;
        }catch (\Exception $e){
            return '';
        }
    }


    public static function parseToken($token)
    {
        try {

            $jwtObject = Jwt::getInstance()
                ->setSecretKey('easyswoole') // 秘钥
                ->decode();

            $status = $jwtObject->getStatus();

            switch ($status)
            {
                case  1:
                    return [true,''];
                    break;
                case  -1:
                    return [false,'token无效'];
                    break;
                case  -2:
                    return [false,'token过期'];
                    break;
            }
        } catch (\EasySwoole\Jwt\Exception $e) {
            return [false,'token验证失败'];
        }
    }
}